<?php namespace Common\Model;

use Hdphp\Model\Model;
class Goods extends Model{
	protected $table= "goods";
	//自动验证	
	protected $validate= array(
//	        array('gname','required','商品名稱不能為空',3,3),
//	        array('ginventory','required','庫存不能為空',3,3),
	);
	//自动完
	protected $auto=array(
           //添加時間的現代時間
		array('gtime','time','function',3,3),
//	    array('gpic','gpic','method',3,3),
	    
	);
	
	
	//添加分类
	public function store(){



		if(!$this->create()){return false;}
		
		$catemodel=new \Common\Model\Cate;
		$cid=Q('post.category_cid');
		$this->data['type_tid']=$catemodel->where("cid={$cid}")->pluck('type_tid');
		//2.验证商品详情表里的商品详情和商品服务是否通过Q1
		//实例化商品详情表
		$detailModel = new \Common\Model\Gpar;
//		if(!$detailModel->create()){
//			//若验证不通过，把当前错误压入当前模型
//			$this->error = $detailModel->getError();
//			return false;
//		}
		//3.验证商品属性表里的商品属性值是否通过验证
		//实例化商品属性表
		$attrModel = new \Common\Model\Gevalue;
		

		//1.给商品表添加数据，如果以上验证全部通过,返回商品自增主键（真值）
		$num = $this->add(); 
		//2.给商品详情表添加数据
		//将多图的数组路径转化为字符串压入相应的商品详情数据的数组里然后执行添加
		$detailModel->data['gpic']=implode(',', Q('post.gpic',array()));
		$detailModel->data['goods_gid']=$num;
		//给详情表里加入数据
		$detailModel->add();
		//3.给商品属性表里添加数据
		//是规格的时候
//		p(Q('post.spec'));die;
		foreach (Q('post.spec',array()) as $k => $v){
			foreach ($v['value'] as $kk => $vv) {
				$add = array(
					'gtvalue'    => $vv,
					'gadded'    => $v['price'][$kk],
					'goods_gid' => $num,
					'typevalue_taid'    => $k
				);
				$attrModel->add($add);				
			}
		}
		//是属性的时候
		foreach (Q('post.attr',array()) as $ky => $vl) {
			$ad = array(
					'gtvalue'  		=> $vl,
					'gadded'  		=> 0,
					'goods_gid' 	=> $num,
					'typevalue_taid'=> $k
				);
				$attrModel->add($ad);	
		}
		
		return true;
		
	}
	//编辑的方法
	
	public function  edit(){
		//如果验证失败
		if(!$this->create()) return false;
		//把當前的錯誤壓入到當前模板
		//执行编辑
		$this->save();
//		/保存商品详细表、
//		1.获取到需要更新的商品详细表的id
		$gid = Q('post.gid',0,'intval');//得到商品id用于查找商品详细表的id
		$gpic = Q('post.gpic');//获得提交上来的图片地址数组
		$gparModel = new \Common\Model\Gpar;//实例化商品详细表
	$gpid = $gparModel->where("goods_gid = {$gid}")->pluck('gpid');
//		2.组合需要更新的内容
	$temp = array(
		'gpid' =>$gpid,
			'gpic' =>implode(',', $gpic)
		);
//		更新数据表类容
		$gparModel->save($temp);
		
	
//		返回真
		return true;
	}
		 
}